#if !defined(__APP_POOL_H__)
#define __APP_POOL_H__

//任务结构体
typedef struct 
{   
    //任务函数：某个分线程执行的任务（函数指针）,返回是否成功
    int (*task_func)(void *arg);  
    //任务参数
    void *arg;               
}Task;

//初始化：创建线程池、消息队列、监听消息队列有任务则接收
//num:线程池中线程数量
int app_pool_init(int num);

//关闭：销毁线程池、消息队列
void app_pool_close(void);

//注册回调：将任务函数结构体注册/发送到消息队列中、等待某监听线程执行任务
//没直接用Task * task是因为Task * task线程池释放会没
int app_pool_registerTask(int (*task_func)(void *arg), void *arg);

#endif // __APP_POOL_H__
